Android sdk实现了android手机与扫码盒的连接通讯,手机通过连接可以获取扫码盒的基本参数信息(序列号)及扫码后的二维码信息,同时可以发送数据到扫码盒。
sdk支持android 4.1及上版本的手机系统(因为从 Android4.1开始,才正式支持USB Host),手机硬件需支持USB功能
```xml
<uses-feature android:name="android.hardware.usb.host" android:required="true"/>
解决键盘类USB插拔影响Activity生命周期触发断开连接重新通讯的问题add configChanges="keyboard|keyboardHidden"
```
```xml
<service android:name="com.wsm.hidlib.service.HIDService"/>
```
```java
import com.wsm.hidlib.HIDManager;
import com.wsm.hidlib.callback.HIDDataListener;
import com.wsm.hidlib.callback.HIDOpenListener;
import com.wsm.hidlib.constant.ConnectCostant;
import com.wsm.hidlib.constant.FormatConstant;
public void openHID(Context context, HIDOpenListener hidOpenListener, HIDDataListener hidDataListener)
context:上下文对象 hidOpenListener: 设备状态回调 hidDataListener:数据接收回调
```
```java
void openSuccess(int openSuccessStatus);
连接状态 openSuccessStatus: USB_CONNECT: 连接USB; COMMUNICATION_OPEN:通讯建立
void openError(int openErrorStatus);
断开状态 openErrorStatus : USB_DISCONNECT:断开USB; COMMUNICATION_CLOSE:通讯断开;
```
```java
void onDataReceived(String dataMessage);
dataMessage:数据内容
void onOriginalDataReceived(byte[] bytes, int length);
bytes:收到数据的字节数组形式
length:字节数组长度
```
```java
public void closeHID()
```
```java
public void getSequenceNumber(HIDSequenceNumberListener hidSequenceNumberListener)
hidSequenceNumberListener:序列号SN接收回调
void onSequenceNumberReceived(byte[] bytes, int length);
bytes:收到序列号的字节数组形式
length:字节数组长度
```
```java
public void sendData(String sendMessage)
向扫码盒发送数据如果回应通过onDataReceived回调;sendMessage:16进制的字符串
```
```java
public int getHIDStatus()
获取扫码盒连接状态;
返回整型数字:
USB_CONNECT usb连接
USB_DISCONNECT usb断开
COMMUNICATION_OPEN 通讯打开
COMMUNICATION_CLOSE 通讯关闭
public boolean setFormat(String format)
设置输出字符串编码格式;format 字符串编码格式
FORMAT_UTF8 = "UTF-8";
FORMAT_GBK = "GBK";
FORMAT_HEX = "HexStr";
返回设置结果 true 成功,false 失败
public boolean setPackageTimeOut(long timelone)
设置超时时间;timelone 传入的设置超时时间,取值范围50L-5000L,默认500L
返回设置结果 true 成功,false 失败
public boolean addDeviceID(int vid, int pid)
默认支持两组设备[[0x1FCA,0x5AA8],[0x34EB,0x1503]],如果需要支持新设备,需要先添加设备VID、PID到支持列表再openHID打开USB通讯。
```